package com.sybil.ot.dominio;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "SIL_EQUIPOS")
public class Equipo implements Serializable {

   private static final long serialVersionUID = 1L;
   private String clave;
   private String numeroEconomico;
   private String descripcion;
   private String marcaEquipo;
   private String comentarios;
   private String estatus;
   private String activo;
   private TipoEquipo tipoEquipo;

   public Equipo() {
   }

   public Equipo(String clave) {
      this.clave = clave;
   }

   public Equipo(String clave, String numeroEconomico, String descripcion,
           String comentarios, String estatus, String activo) {
      this.clave = clave;
      this.numeroEconomico = numeroEconomico;
      this.descripcion = descripcion;
      this.comentarios = comentarios;
      this.estatus = estatus;
      this.activo = activo;
   }

   @Id
   @Basic(optional = false)
   @Column(name = "EQPO_CLAVE")
   public String getClave() {
      return clave;
   }

   @Transient
   public String getValorMuestra() {
      String muestra = "";
      if (numeroEconomico != null && !"".equals(numeroEconomico)) {
         muestra += numeroEconomico + " / ";

      }
      if (descripcion != null && !"".equals(descripcion)) {
         if (this.descripcion.length() > 25) {
            muestra += descripcion.substring(0, 25);
         } else {
            muestra += descripcion;
         }
      }
      return muestra;
   }

   public void setClave(String clave) {
      this.clave = clave;
   }

   @Column(name = "EQPO_NUM_ECONOMICO")
   public String getNumeroEconomico() {
      return numeroEconomico;
   }

   public void setNumeroEconomico(String numeroEconomico) {
      this.numeroEconomico = numeroEconomico;
   }

   @Basic(optional = false)
   @Column(name = "EQPO_DESCRIPCION")
   public String getDescripcion() {
      return descripcion;
   }

   public void setDescripcion(String descripcion) {
      this.descripcion = descripcion;
   }

   @Column(name = "EQPO_MARCA_EQUIPO")
   public String getMarcaEquipo() {
      return marcaEquipo;
   }

   public void setMarcaEquipo(String marcaEquipo) {
      this.marcaEquipo = marcaEquipo;
   }

   @Column(name = "EQPO_COMENTARIOS")
   public String getComentarios() {
      return comentarios;
   }

   public void setComentarios(String comentarios) {
      this.comentarios = comentarios;
   }

   @Column(name = "EQPO_ESTATUS")
   public String getEstatus() {
      return estatus;
   }

   public void setEstatus(String estatus) {
      this.estatus = estatus;
   }

   @Basic(optional = false)
   @Column(name = "EQPO_ACTIVO")
   public String getActivo() {
      return activo;
   }

   public void setActivo(String activo) {
      this.activo = activo;
   }

   @JoinColumn(name = "EQPO_TIEQ_CLAVE", referencedColumnName = "TIEQ_CLAVE")
   @ManyToOne(optional = false)
   public TipoEquipo getTipoEquipo() {
      return tipoEquipo;
   }

   public void setTipoEquipo(TipoEquipo tipoEquipo) {
      this.tipoEquipo = tipoEquipo;
   }

   @Override
   public int hashCode() {
      int hash = 0;
      hash += (clave != null ? clave.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object object) {
      if (!(object instanceof Equipo)) {
         return false;
      }
      Equipo other = (Equipo) object;
      if ((this.clave == null && other.clave != null) || (this.clave != null && !this.clave.equals(other.clave))) {
         return false;
      }
      return true;
   }

   @Override
   public String toString() {
      return "Equipo[ clave=" + clave + " ]";
   }
}
